Due to the cost and performance differences of various types of memory devices, processing systems typically use at least two types of memory. One type is the main memory, which is a relatively fast, randomaccess, memory, capable of being read or written substantially in real time. Generally implemented as a core or a semiconductor memory, the main memory is rather expensive per bit of storage space. Hence the main memory is commonly made only large enough to hold information that is likely to be needed by the processing system most immediately. The bulk of information available to the processing system is held in the other type of memory, referred to as secondary storage. Information is moved by the processing system between the main memory and secondary storage as needed.
Secondary storage is commonly implemented in a sequential access, magnetic storage medium, such as a tape or a disk. Compared to the main memory, access to the secondary storage is typically slow. However, the secondary storage is relatively inexpensive per bit of storage space, and hence it can provide large amounts of storage capacity to a processing system at reasonable cost.
There are many applications of processing systems--for example telephone electronic switching systems--that both require real-time processing and do not tolerate well the loss of processing capability. Processing systems used in such applications need to be highly reliable, to the point of being fault-tolerant. One way of achieving reliability and fault tolerance in processing systems is by duplication, or even more numerous replication, of the functional units in the system, including replication of the secondary storage units and their contents. Duplicated secondary storage may be arranged in an active-standby configuration, wherein the active storage unit is on-line and performing storage and retrieval tasks as required by the processing system, while the other unit is kept up to date with the same contents as the active unit and stands by, ready to take over as the active unit should the currently-active unit fail. Thus the system can generally tolerate the loss of one secondary storage unit without loss of processing power.
But even upon failure of all replicated secondary storage units in the processing system, processing capability of the system need not necessarily be totally lost. Some of the system's stored information is contained in the main memory, and this information may be sufficient to allow the system to continue to perform some of its tasks. Whether or not the processing system retains at least part of its processing capability in the face of loss of all of its replicated secondary storage units is then a function of what information remains available to it from other sources. For example, in certain electronic switching systems, information essential for system operation, such as most real-time intensive system and application programs and parameters, is permanently stored in a program store portion of the system's main memory, while other information, such as data about particular customers served by the system, is stored on duplicated disks and is brought into a call store portion of the main memory only when needed. Upon failure of both of its duplicated disks, the system retains access to its essential programs, and therefore retains the capability of performing those of its tasks and of servicing those of its customers for which or whom it either has the necessary data stored in call store or does not require any stored data.
The majority of processing systems, including many modern electronic switching systems, are not structured like the certain switching system just described. In particular, these processing systems differ from the described switching system in that they do not permanently store all of their essential programs and system parameters in main memory. Rather, processing systems commonly store most of their parameters, programs, and other information, in secondary storage such as disk storage and move this information back and forth between the main memory and the secondary stores as needed. The reasons for this are numerous. They include the utilization by these processing systems of sophisticated operating systems that are capable of moving the programs and other information efficiently between main memory and secondary storage; the cost savings resulting from not having to have a main memory large enough to store all programs executable by the processing system and still provide adequate storage space for other information that is desirably stored in the main memory; and the versatility of, and general purpose to which may be put, the processing system when it is not restricted to executing only the limited number and size of programs that can fit into its main memory.
But precisely because these systems move information essential to their operation back and forth between secondary storage and the main memory, they lose access to that information upon loss of access to the secondary storage. The loss of access to secondary storage may occur at any time, and the inaccessible information may be that without which the system cannot continue its processing activities. Hence processing systems generally lose their processing capability in the face of such secondary storage failure.